package com.ylbh.modules.balancelog.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylbh.common.pojo.balancelog.dto.ShoppingCommissionDTO;
import com.ylbh.common.pojo.balancelog.vo.BalanceLogVO;
import com.ylbh.common.pojo.member.dto.select.RevenueLogSelectDTO;
import com.ylbh.modules.balancelog.entity.ShoppingBalanceLog;
import com.ylbh.modules.business.entity.ShoppingUser;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户余额变动表 主要记录用户的余额变动信息
 *
 * @author czx
 * @date 2019-09-03 14:25:10
 */
@Mapper
@Repository
public interface ShoppingBalanceLogMapper extends BaseMapper<ShoppingBalanceLog> {

    /**
     * 余额变动
     * @param pageDTO
     * @return
     */
    List<BalanceLogVO> selectBalanceLogList(String lastStart, String lastEnd, String keywords, Page page);

    /**
     * 查询用户当前的佣金
     * @param name
     * @return
     */
    BigDecimal selectUserCommissionMoney(String name);

    /**
     * 修改当前用户的用户信息
     * @param name
     * @param subtract
     */
    void updateUserCommissionMoney(String name, BigDecimal subtract);

    ShoppingUser selectIdByUserName(String name);

    /**
     * 增加佣金变动记录
     * @param commissionDTO
     */
    void insertCommission(@Param(value = "commissionDTO") ShoppingCommissionDTO commissionDTO);

    /**
     * 系统管理余额记录
     * @param dto
     * @param page
     * @return
     */
    List<BalanceLogVO> selectAdminAndBalanceLog(RevenueLogSelectDTO dto, Page<Integer> page);

    /**
     * 余额变动导出
     * @param startTime
     * @param endTime
     * @param keywords
     * @return
     */
    List<BalanceLogVO> selectBalanceRecordExcel(String startTime, String endTime, String keywords);
}
